package com.warmheart.builder.sys;

import com.warmheart.core.rs.base.BaseRsBuilder;
import com.warmheart.core.rs.oper.Rs;
import com.warmheart.entity.sys.SysSequence;

/**
 * 
 * @ClassName: SysSequence
 * @Description: 序号实体RsBuilder类，对应表名称为tb_sys_sequence
 *               温馨提示：不要修改该实体RsBuilder类的任何字段
 * @author ZhangJianyang
 * @date 2025-06-16 09:37:02
 *
 */
public class SysSequenceRsBuilder extends BaseRsBuilder<SysSequence, SysSequenceRsBuilder> {

    private final SysSequence t;

    @Override
    protected SysSequenceRsBuilder self() {
        return this;
    }

    @Override
    public SysSequence core() {
        return this.t;
    }

    public SysSequenceRsBuilder(SysSequence sysSequence) {
        t = sysSequence;
    }

    /**
     * 序号类型
     */
    private Rs<SysSequence, SysSequenceRsBuilder> seqType;

    /**
     * 前缀
     */
    private Rs<SysSequence, SysSequenceRsBuilder> prefix;

    /**
     * 流水号长度
     */
    private Rs<SysSequence, SysSequenceRsBuilder> serialLength;

    /**
     * 日期规则
     */
    private Rs<SysSequence, SysSequenceRsBuilder> dateRule;

    /**
     * 流水号
     */
    private Rs<SysSequence, SysSequenceRsBuilder> serialNumber;

    /**
     * 是否按日期更新
     */
    private Rs<SysSequence, SysSequenceRsBuilder> isDateUpdate;

    public Rs<SysSequence, SysSequenceRsBuilder> seqType() {
        if (this.seqType == null) {
            this.seqType = new Rs<SysSequence, SysSequenceRsBuilder>(self(), "seq_type", "seqType");
        }
        return this.seqType;
    }

    public Rs<SysSequence, SysSequenceRsBuilder> prefix() {
        if (this.prefix == null) {
            this.prefix = new Rs<SysSequence, SysSequenceRsBuilder>(self(), "prefix", "prefix");
        }
        return this.prefix;
    }

    public Rs<SysSequence, SysSequenceRsBuilder> serialLength() {
        if (this.serialLength == null) {
            this.serialLength = new Rs<SysSequence, SysSequenceRsBuilder>(self(), "serial_length", "serialLength");
        }
        return this.serialLength;
    }

    public Rs<SysSequence, SysSequenceRsBuilder> dateRule() {
        if (this.dateRule == null) {
            this.dateRule = new Rs<SysSequence, SysSequenceRsBuilder>(self(), "date_rule", "dateRule");
        }
        return this.dateRule;
    }

    public Rs<SysSequence, SysSequenceRsBuilder> serialNumber() {
        if (this.serialNumber == null) {
            this.serialNumber = new Rs<SysSequence, SysSequenceRsBuilder>(self(), "serial_number", "serialNumber");
        }
        return this.serialNumber;
    }

    public Rs<SysSequence, SysSequenceRsBuilder> isDateUpdate() {
        if (this.isDateUpdate == null) {
            this.isDateUpdate = new Rs<SysSequence, SysSequenceRsBuilder>(self(), "is_date_update", "isDateUpdate");
        }
        return this.isDateUpdate;
    }
}